This invention relates to user interfaces adapted for use with information processing systems, and, more particularly, relates to systems and methods for generating customized screens for interfacing with said systems.
With the widespread adoption and use of computerized information processing systems has come a correspondingly large and diverse number of application program software for satisfying the needs of various users of such systems. However, notwithstanding such an increase in the variety and availability of excellent application software, due to such diverse needs, which can often times becomes quite specialized, a need arose for software products which could be readily adapted and customized by the end users as required to suit their particular environment and application.
As but one simple example, it has become quite conventional to allow for the custom configuring of various software products by the user through menu driven system configuration options at the front end of the application programs. A typical example of this may be seen in the communication software support programs for modems such as the products commercially offered by Hayes Microcomputer Products, Inc. In such a product, for example, in the initial boot up of the system it is commonplace to encounter a "Change System Configuration" menu whereby through user interaction, a system may be easily reconfigured and adapted for various printer interface cards, options specifying whether line feeds are needed, number of disk drives used, expansion slot number wherein the printer interface card resides, ability to specify various baud rates, and the like.
While such systems did provide for limited adaptability and customizing of software to the particular needs of the end user, they nevertheless still suffered from an inherent disadvantage. The variations and ways in which an end user could interface with the software product to specify these variations were themselves, predetermined by the software programmer, and thus relatively fixed in the product. This limitation, -in turn, gave rise to the emergence of various software products which could give the end users themselves some control over tailor making or customizing the user interface to the functions of the application program. Thus, it became highly desirable to provide end users with the additional capability of making adjustments for the software to their particular application.
For example, in the field of relational database systems, heretofore the end user of such systems was stuck with the content and manner of interaction of the user with various pull-down or pop-up windows in the interface for interacting with the database. More particularly, end users had no control over the variety and the manners of ways items could be selected from a window, the way such action items were described (such as "print customer order", "search invoices", etc.) they simply had to rely on the application designer's knowledge of their particular business and needs in attempting to provide an application program of maximum utility to an ever-growing number of end users with widely divergent requirements. The invention addresses the problem of mutually inconsistent goals in designing an application for a potentially large installed base while at the same time taking into account the need of end users not skilled in programming to customize features in a simple, efficient way.
Continuing with the relational database system example, with the advent of this need for end user customization, techniques became available for affording various degrees of such customization of screens for data viewing and entry. Examples of such products in the relational database art providing for various degrees of user interface customization include the following products followed immediately by their respective commercial sources: PC/FOCUS, Information Builders, Inc.; Paradox, ANSA Software; dBaseIII.sup.+, Ashton-Tate; and Oracle, Oracle Corporation.
Notwithstanding the aforementioned increased availability of products with end user customization capability, a serious problem nevertheless still remained. Very typically at some point in the customization steps in the software, programming knowledge and skills were required to complete the software customization, including detailed knowledge of programming language syntax and semantics, and the like. It should be readily apparent that this requirement was inconsistent with the capabilities of many end users and the need to provide for versatile user interface customizing by an end user with neither the time, money nor inclination to bring programming skills to bear in order to enjoy the benefits of such customization. In other words, complete customization has generally required programming expertise in generation of applications using program language statements.
Moreover the run time user of the application, who is often times different from the user interface designer in the past, knows the application's interaction techniques including such things as application action bars and action pull-down windows. It was thus also highly desirable to provide a tool to a run time user for design and modification of a user interface (including panel action/operations) in a format and using interaction techniques already familiar to the user through running the application. In this manner, the user would be less intimidated by the custom design and modification process as well as the interface panels and the like themselves and thus could become productive sooner.
With the foregoing in mind, it would be highly desirable to provide for end user design of panels for example to create customized screens for data viewing and entry which might be manipulated by the end users in the same way that they interact with other portions of the product such as the familiar application action bar. Still further, the desired product would permit the panel designer to fully customize an action pull-down window which would appear on the application action bar when running panels. It would also be highly desirable to provide for a system and method for user interface definition wherein the panel designer could create the application by specifying a series of panels and menus created essentially by filling in pop-up windows customized, and wherein such creation is in an interactive session with the interface but without the heretofore noted drawback of required specific programming skills. It would further be highly desirable to provide such techniques for user interface definition wherein the panel actions feature provided a panel designer with the means to assign at will not only the text of action items with which the user would select functions but the manner in which this was accomplished by way of varying mnemonics, function keys to each action, and the like. These and other novel features of the present invention are hereinafter described in greater detail.